﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using EHTSaleManager.Code.Utility;

namespace EHTSaleManager.UIAdmin
{
    public partial class AdminUser : System.Web.UI.Page
    {
        private String userName = "";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.QueryString["UserName"] != null)
                {
                    try
                    {
                        userName = Request.QueryString["UserName"].ToString();
                    }
                    catch (Exception ex)
                    {
                        userName = "";
                    }
                }

                if (userName == "")
                {
                    ViewState["action"] = HangSo.ACTION_ADD;
                    this.btnResetPassword.Visible = false;
                }
                else
                {
                    this.btnResetPassword.Visible = true;
                    // get customer
                    MembershipUser theUser = Membership.GetUser(userName);

                    if (theUser == null)
                    {
                        Response.Redirect("AdminUsers.aspx");

                    }
                    else
                    {
                        this.txtEmail.Text = theUser.Email;
                        this.txtPassword.Text = "123456789";
                        this.txtComfirmPassword.Text = "123456789";
                        this.txtPassword.Attributes.Add("value", "123456789");
                        this.txtComfirmPassword.Attributes.Add("value", "123456789");
                        this.txtEmail.ReadOnly = true;
                        this.txtPassword.ReadOnly = true;
                        this.txtComfirmPassword.ReadOnly = true;
                        this.rComfirmPassword.Enabled = false;
                        this.rPassword.Enabled = false;
                        ViewState["ID"] = theUser.UserName;
                        ViewState["action"] = HangSo.ACTION_UPDATE;

                    }
                }
            }
        }

        private Boolean ValidateData()
        {
            String message = "";
            Boolean isSuccess = true;

            if (this.txtPassword.Text.Trim().Length < 6 && ViewState["action"].ToString() == HangSo.ACTION_ADD)
            {
                message += "Passord må ha lengh>= 6";
                isSuccess = false;
            }

            if (!isSuccess)
                ltrMessage.Text = message;

            return isSuccess;
        }

        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (!ValidateData())
                return;

            Page.Validate();

            if (Page.IsValid)
            {
                String action = ViewState["action"].ToString();
                String userName = this.txtEmail.Text;
                String password = this.txtPassword.Text;
                String email = this.txtEmail.Text;

                if (action == HangSo.ACTION_ADD)
                {
                    MembershipUser theUser = Membership.GetUser(userName);

                    //trường hợp User Name chưa tồn tại mới cho đăng kí
                    if (theUser == null)
                    {
                        theUser = Membership.CreateUser(userName, password, email);// tạo user
                        Roles.AddUserToRole(userName, HangSo.ROLE_ADMIN); // thiết định vào nhóm Admin
                        Response.Redirect("AdminUsers.aspx");
                    }
                    //tồn tại rồi thì hiển thị thông báo
                    else
                    {
                        ltrMessage.Text = "E-post er alredy utganger";
                        this.txtEmail.Focus();
                    }
                }
                else if (action == HangSo.ACTION_UPDATE)
                {
                    MembershipUser theUser = Membership.GetUser(userName);
                    //trường hợp User Name tồn tại mới cho cập nhật lại thông tin
                    if (theUser != null)
                    {
                        theUser.Email = this.txtEmail.Text.Trim();
                        Membership.UpdateUser(theUser);// lưu vào DB
                        Response.Redirect("AdminUsers.aspx");
                    }
                    //Chưa tồn tại thì trở lại trang list User
                    else
                    {
                        Response.Redirect("AdminUsers.aspx");
                    }
                }
            }
        }

        protected void btnBack_Click(object sender, EventArgs e)
        {
            Response.Redirect("AdminUsers.aspx");
        }

        protected void btnResetPassword_Click(object sender, EventArgs e)
        {
            string NewPassWord = "123456";
            MembershipUser theUser = Membership.GetUser(this.txtEmail.Text);

            if (theUser == null)
                return;
            
            theUser.ChangePassword(theUser.ResetPassword(), NewPassWord);
            ltrMessage.Text = "Bytt passord vellykket. Nytt passord er 123456 ";
        }
    }
}